[INFO] fetching crate authenticator-ctap2-2021 0.3.2-dev.1...
[INFO] checking authenticator-ctap2-2021-0.3.2-dev.1 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate authenticator-ctap2-2021 0.3.2-dev.1 into /workspace/builds/worker-3-tc1/source
[INFO] validating manifest of crates.io crate authenticator-ctap2-2021 0.3.2-dev.1 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate authenticator-ctap2-2021 0.3.2-dev.1
[INFO] finished tweaking crates.io crate authenticator-ctap2-2021 0.3.2-dev.1
[INFO] tweaked toml for crates.io crate authenticator-ctap2-2021 0.3.2-dev.1 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] crate crates.io crate authenticator-ctap2-2021 0.3.2-dev.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded sha2 v0.10.2
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.79
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.79
[INFO] [stderr]   Downloaded serde_bytes v0.11.5
[INFO] [stderr]   Downloaded httparse v1.6.0
[INFO] [stderr]   Downloaded tokio v1.20.1
[INFO] [stderr]   Downloaded slab v0.4.5
[INFO] [stderr]   Downloaded syn v1.0.89
[INFO] [stderr]   Downloaded tinyvec v1.5.1
[INFO] [stderr]   Downloaded itoa v1.0.1
[INFO] [stderr]   Downloaded tokio-tungstenite v0.15.0
[INFO] [stderr]   Downloaded cexpr v0.4.0
[INFO] [stderr]   Downloaded indent_write v2.2.0
[INFO] [stderr]   Downloaded hyper v0.14.20
[INFO] [stderr]   Downloaded web-sys v0.3.56
[INFO] [stderr]   Downloaded libc v0.2.121
[INFO] [stderr]   Downloaded runloop v0.1.0
[INFO] [stderr]   Downloaded devd-rs v0.3.3
[INFO] [stderr]   Downloaded brownstone v1.1.0
[INFO] [stderr]   Downloaded buf_redux v0.8.4
[INFO] [stderr]   Downloaded bindgen v0.58.1
[INFO] [stderr]   Downloaded safemem v0.3.3
[INFO] [stderr]   Downloaded joinery v2.1.0
[INFO] [stderr]   Downloaded twoway v0.1.8
[INFO] [stderr]   Downloaded libudev-sys v0.1.4
[INFO] [stderr]   Downloaded multipart v0.18.0
[INFO] [stderr]   Downloaded env_logger v0.6.2
[INFO] [stderr]   Downloaded matches v0.1.9
[INFO] [stderr]   Downloaded libudev v0.2.0
[INFO] [stderr]   Downloaded scoped-tls v1.0.0
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.79
[INFO] [stderr]   Downloaded warp v0.3.2
[INFO] [stderr]   Downloaded openssl v0.10.38
[INFO] [stderr]   Downloaded http v0.2.6
[INFO] [stderr]   Downloaded openssl-sys v0.9.72
[INFO] [stderr]   Downloaded form_urlencoded v1.0.1
[INFO] [stderr]   Downloaded bumpalo v3.9.1
[INFO] [stderr]   Downloaded pin-project-internal v1.0.10
[INFO] [stderr]   Downloaded js-sys v0.3.56
[INFO] [stderr]   Downloaded mio v0.8.4
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.79
[INFO] [stderr]   Downloaded serde_json v1.0.79
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.79
[INFO] [stderr]   Downloaded unicode-bidi v0.3.7
[INFO] [stderr]   Downloaded cpufeatures v0.2.2
[INFO] [stderr]   Downloaded rpassword v5.0.1
[INFO] [stderr]   Downloaded quote v1.0.16
[INFO] [stderr]   Downloaded tokio-stream v0.1.9
[INFO] [stderr]   Downloaded pkg-config v0.3.24
[INFO] [stderr]   Downloaded block-buffer v0.10.2
[INFO] [stderr]   Downloaded crypto-common v0.1.3
[INFO] [stderr]   Downloaded nom-supreme v0.6.0
[INFO] [stderr]   Downloaded nom v5.1.2
[INFO] [stderr]   Downloaded digest v0.10.3
[INFO] [stderr]   Downloaded which v3.1.1
[INFO] [stderr]   Downloaded sha-1 v0.10.0
[INFO] [stderr]   Downloaded headers v0.3.7
[INFO] [stderr]   Downloaded h2 v0.3.14
[INFO] [stderr]   Downloaded url v2.2.2
[INFO] [stderr]   Downloaded tungstenite v0.14.0
[INFO] [stderr]   Downloaded tracing v0.1.32
[INFO] [stderr]   Downloaded pin-project v1.0.10
[INFO] [stderr]   Downloaded unicode-normalization v0.1.19
[INFO] [stderr]   Downloaded tracing-core v0.1.23
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9d99f292a04aac3f790041c28234cbd724a9dd09480cefc4c027ef59431e6ccc
[INFO] running `Command { std: "docker" "start" "-a" "9d99f292a04aac3f790041c28234cbd724a9dd09480cefc4c027ef59431e6ccc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9d99f292a04aac3f790041c28234cbd724a9dd09480cefc4c027ef59431e6ccc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9d99f292a04aac3f790041c28234cbd724a9dd09480cefc4c027ef59431e6ccc", kill_on_drop: false }`
[INFO] [stdout] 9d99f292a04aac3f790041c28234cbd724a9dd09480cefc4c027ef59431e6ccc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 55b0e106bac3df8400b832ab985ee2b83bcf900de19793fa837810312d4a1c89
[INFO] running `Command { std: "docker" "start" "-a" "55b0e106bac3df8400b832ab985ee2b83bcf900de19793fa837810312d4a1c89", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.121
[INFO] [stderr]    Compiling pkg-config v0.3.24
[INFO] [stderr]    Compiling proc-macro2 v1.0.36
[INFO] [stderr]    Compiling syn v1.0.89
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]    Compiling log v0.4.16
[INFO] [stderr]     Checking ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling generic-array v0.14.5
[INFO] [stderr]    Compiling openssl v0.10.38
[INFO] [stderr]    Compiling serde_json v1.0.79
[INFO] [stderr]     Checking half v1.8.2
[INFO] [stderr]     Checking cpufeatures v0.2.2
[INFO] [stderr]    Compiling authenticator-ctap2-2021 v0.3.2-dev.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking itoa v1.0.1
[INFO] [stderr]     Checking humantime v1.3.0
[INFO] [stderr]     Checking nom v7.1.1
[INFO] [stderr]     Checking base64 v0.13.0
[INFO] [stderr]     Checking runloop v0.1.0
[INFO] [stderr]     Checking getopts v0.2.21
[INFO] [stderr]     Checking assert_matches v1.5.0
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling openssl-sys v0.9.72
[INFO] [stderr]    Compiling quote v1.0.16
[INFO] [stderr]     Checking getrandom v0.2.7
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking rpassword v5.0.1
[INFO] [stderr]     Checking block-buffer v0.10.2
[INFO] [stderr]     Checking crypto-common v0.1.3
[INFO] [stderr]     Checking env_logger v0.6.2
[INFO] [stderr]     Checking libudev v0.2.0
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking digest v0.10.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking sha2 v0.10.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling serde_derive v1.0.136
[INFO] [stderr]     Checking serde v1.0.136
[INFO] [stderr]     Checking serde_cbor v0.11.2
[INFO] [stderr]     Checking serde_bytes v0.11.5
[INFO] [stdout] warning: unused import: `crate::consts::U2F_AUTHENTICATE`
[INFO] [stdout]   --> src/status_update.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |     use crate::consts::U2F_AUTHENTICATE;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/statemachine.rs:844:35
[INFO] [stdout]     |
[INFO] [stdout] 844 |             move |info, selector, status, _alive| {
[INFO] [stdout]     |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/statemachine.rs:845:21
[INFO] [stdout]     |
[INFO] [stdout] 845 |                 let mut dev = match Self::init_and_select(info, &selector, false) {
[INFO] [stdout]     |                     ----^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0170]: pattern binding `Timeout` is named the same as one of the variants of the type `std::sync::mpsc::RecvTimeoutError`
[INFO] [stdout]    --> src/manager.rs:144:25
[INFO] [stdout]     |
[INFO] [stdout] 144 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: to match on the variant, qualify the path: `std::sync::mpsc::RecvTimeoutError::Timeout`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[deny(bindings_with_variant_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/manager.rs:145:21
[INFO] [stdout]     |
[INFO] [stdout] 145 |                     Err(RecvTimeoutError::Disconnected) => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Timeout`
[INFO] [stdout]    --> src/manager.rs:144:25
[INFO] [stdout]     |
[INFO] [stdout] 144 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout`
[INFO] [stdout]    --> src/manager.rs:272:9
[INFO] [stdout]     |
[INFO] [stdout] 272 |         timeout: u64,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/manager.rs:273:9
[INFO] [stdout]     |
[INFO] [stdout] 273 |         status: Sender<crate::StatusUpdate>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `callback`
[INFO] [stdout]    --> src/manager.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |         callback: StateCallback<crate::Result<crate::InfoResult>>,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_callback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0170]: pattern binding `Timeout` is named the same as one of the variants of the type `std::sync::mpsc::RecvTimeoutError`
[INFO] [stdout]    --> src/manager.rs:380:25
[INFO] [stdout]     |
[INFO] [stdout] 380 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: to match on the variant, qualify the path: `std::sync::mpsc::RecvTimeoutError::Timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/manager.rs:381:21
[INFO] [stdout]     |
[INFO] [stdout] 381 |                     Err(RecvTimeoutError::Disconnected) => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Timeout`
[INFO] [stdout]    --> src/manager.rs:380:25
[INFO] [stdout]     |
[INFO] [stdout] 380 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/statemachine.rs:844:35
[INFO] [stdout]     |
[INFO] [stdout] 844 |             move |info, selector, status, _alive| {
[INFO] [stdout]     |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/statemachine.rs:845:21
[INFO] [stdout]     |
[INFO] [stdout] 845 |                 let mut dev = match Self::init_and_select(info, &selector, false) {
[INFO] [stdout]     |                     ----^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0170]: pattern binding `Timeout` is named the same as one of the variants of the type `std::sync::mpsc::RecvTimeoutError`
[INFO] [stdout]    --> src/manager.rs:144:25
[INFO] [stdout]     |
[INFO] [stdout] 144 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: to match on the variant, qualify the path: `std::sync::mpsc::RecvTimeoutError::Timeout`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[deny(bindings_with_variant_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/manager.rs:145:21
[INFO] [stdout]     |
[INFO] [stdout] 145 |                     Err(RecvTimeoutError::Disconnected) => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Timeout`
[INFO] [stdout]    --> src/manager.rs:144:25
[INFO] [stdout]     |
[INFO] [stdout] 144 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout`
[INFO] [stdout]    --> src/manager.rs:272:9
[INFO] [stdout]     |
[INFO] [stdout] 272 |         timeout: u64,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/manager.rs:273:9
[INFO] [stdout]     |
[INFO] [stdout] 273 |         status: Sender<crate::StatusUpdate>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `callback`
[INFO] [stdout]    --> src/manager.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |         callback: StateCallback<crate::Result<crate::InfoResult>>,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_callback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0170]: pattern binding `Timeout` is named the same as one of the variants of the type `std::sync::mpsc::RecvTimeoutError`
[INFO] [stdout]    --> src/manager.rs:380:25
[INFO] [stdout]     |
[INFO] [stdout] 380 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: to match on the variant, qualify the path: `std::sync::mpsc::RecvTimeoutError::Timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/manager.rs:381:21
[INFO] [stdout]     |
[INFO] [stdout] 381 |                     Err(RecvTimeoutError::Disconnected) => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Timeout`
[INFO] [stdout]    --> src/manager.rs:380:25
[INFO] [stdout]     |
[INFO] [stdout] 380 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DeviceSelectorEventMarker` is never used
[INFO] [stdout]   --> src/transport/device_selector.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | trait DeviceSelectorEventMarker {}
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Timeout` should have a snake case name
[INFO] [stdout]    --> src/manager.rs:144:25
[INFO] [stdout]     |
[INFO] [stdout] 144 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: convert the identifier to snake case: `timeout`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Timeout` should have a snake case name
[INFO] [stdout]    --> src/manager.rs:380:25
[INFO] [stdout]     |
[INFO] [stdout] 380 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: convert the identifier to snake case: `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> src/capi.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         Box::from_raw(mgr);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let _ = Box::from_raw(mgr);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> src/capi.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |         Box::from_raw(ids);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let _ = Box::from_raw(ids);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/capi.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |         Box::from_raw(khs);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let _ = Box::from_raw(khs);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/capi.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |         Box::from_raw(res);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let _ = Box::from_raw(res);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> src/ctap2_capi.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         Box::from_raw(mgr);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let _ = Box::from_raw(mgr);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/ctap2_capi.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |         Box::from_raw(khs);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let _ = Box::from_raw(khs);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 18 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0170`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `authenticator-ctap2-2021` (lib) due to 3 previous errors; 18 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: method `is_negative` is never used
[INFO] [stdout]   --> src/util.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub trait Signed {
[INFO] [stdout]    |           ------ method in this trait
[INFO] [stdout] 21 |     fn is_negative(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_unix_result` is never used
[INFO] [stdout]   --> src/util.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn from_unix_result<T: Signed>(rv: T) -> io::Result<T> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DeviceSelectorEventMarker` is never used
[INFO] [stdout]   --> src/transport/device_selector.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | trait DeviceSelectorEventMarker {}
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cancel` is never constructed
[INFO] [stdout]   --> src/transport/device_selector.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum DeviceSelectorEvent {
[INFO] [stdout]    |          ------------------- variant in this enum
[INFO] [stdout] 30 |     Cancel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceSelectorEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `runloop` is never read
[INFO] [stdout]   --> src/transport/device_selector.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct DeviceSelector {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     runloop: RunLoop,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clone_sender` and `stop` are never used
[INFO] [stdout]    --> src/transport/device_selector.rs:184:12
[INFO] [stdout]     |
[INFO] [stdout] 46  | impl DeviceSelector {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn clone_sender(&self) -> Sender<DeviceSelectorEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn stop(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Timeout` should have a snake case name
[INFO] [stdout]    --> src/manager.rs:144:25
[INFO] [stdout]     |
[INFO] [stdout] 144 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: convert the identifier to snake case: `timeout`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Timeout` should have a snake case name
[INFO] [stdout]    --> src/manager.rs:380:25
[INFO] [stdout]     |
[INFO] [stdout] 380 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: convert the identifier to snake case: `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> src/capi.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         Box::from_raw(mgr);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let _ = Box::from_raw(mgr);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> src/capi.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |         Box::from_raw(ids);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let _ = Box::from_raw(ids);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/capi.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |         Box::from_raw(khs);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let _ = Box::from_raw(khs);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/capi.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |         Box::from_raw(res);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let _ = Box::from_raw(res);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> src/ctap2_capi.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         Box::from_raw(mgr);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let _ = Box::from_raw(mgr);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/ctap2_capi.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |         Box::from_raw(khs);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let _ = Box::from_raw(khs);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 24 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0170`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `authenticator-ctap2-2021` (lib test) due to 3 previous errors; 24 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "55b0e106bac3df8400b832ab985ee2b83bcf900de19793fa837810312d4a1c89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "55b0e106bac3df8400b832ab985ee2b83bcf900de19793fa837810312d4a1c89", kill_on_drop: false }`
[INFO] [stdout] 55b0e106bac3df8400b832ab985ee2b83bcf900de19793fa837810312d4a1c89
[INFO] checking authenticator-ctap2-2021-0.3.2-dev.1 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate authenticator-ctap2-2021 0.3.2-dev.1 into /workspace/builds/worker-3-tc2/source
[INFO] validating manifest of crates.io crate authenticator-ctap2-2021 0.3.2-dev.1 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate authenticator-ctap2-2021 0.3.2-dev.1
[INFO] finished tweaking crates.io crate authenticator-ctap2-2021 0.3.2-dev.1
[INFO] tweaked toml for crates.io crate authenticator-ctap2-2021 0.3.2-dev.1 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] crate crates.io crate authenticator-ctap2-2021 0.3.2-dev.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2859c6ba397ec04b6dcaf13dd64a87f618a185d477ad29e409c23caf9821cfa2
[INFO] running `Command { std: "docker" "start" "-a" "2859c6ba397ec04b6dcaf13dd64a87f618a185d477ad29e409c23caf9821cfa2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2859c6ba397ec04b6dcaf13dd64a87f618a185d477ad29e409c23caf9821cfa2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2859c6ba397ec04b6dcaf13dd64a87f618a185d477ad29e409c23caf9821cfa2", kill_on_drop: false }`
[INFO] [stdout] 2859c6ba397ec04b6dcaf13dd64a87f618a185d477ad29e409c23caf9821cfa2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7f528890e38d44d1ccdf2af811ae0bff3db5c8fa9204a130efebc6aa08825ca0
[INFO] running `Command { std: "docker" "start" "-a" "7f528890e38d44d1ccdf2af811ae0bff3db5c8fa9204a130efebc6aa08825ca0", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.121
[INFO] [stderr]    Compiling pkg-config v0.3.24
[INFO] [stderr]    Compiling proc-macro2 v1.0.36
[INFO] [stderr]    Compiling syn v1.0.89
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]    Compiling log v0.4.16
[INFO] [stderr]    Compiling serde_json v1.0.79
[INFO] [stderr]    Compiling typenum v1.15.0
[INFO] [stderr]    Compiling generic-array v0.14.5
[INFO] [stderr]     Checking ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling openssl v0.10.38
[INFO] [stderr]     Checking half v1.8.2
[INFO] [stderr]    Compiling authenticator-ctap2-2021 v0.3.2-dev.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking cpufeatures v0.2.2
[INFO] [stderr]     Checking itoa v1.0.1
[INFO] [stderr]     Checking humantime v1.3.0
[INFO] [stderr]     Checking nom v7.1.1
[INFO] [stderr]     Checking base64 v0.13.0
[INFO] [stderr]     Checking runloop v0.1.0
[INFO] [stderr]     Checking getopts v0.2.21
[INFO] [stderr]     Checking assert_matches v1.5.0
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling quote v1.0.16
[INFO] [stderr]    Compiling openssl-sys v0.9.72
[INFO] [stderr]     Checking getrandom v0.2.7
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking rpassword v5.0.1
[INFO] [stderr]     Checking env_logger v0.6.2
[INFO] [stderr]     Checking libudev v0.2.0
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking crypto-common v0.1.3
[INFO] [stderr]     Checking block-buffer v0.10.2
[INFO] [stderr]     Checking digest v0.10.3
[INFO] [stderr]     Checking sha2 v0.10.2
[INFO] [stderr]    Compiling serde_derive v1.0.136
[INFO] [stderr]     Checking serde v1.0.136
[INFO] [stderr]     Checking serde_cbor v0.11.2
[INFO] [stderr]     Checking serde_bytes v0.11.5
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/u2fprotocol.rs:196:57
[INFO] [stdout]     |
[INFO] [stdout] 196 |         count += U2FHIDCont::write(dev, sequence, &send[count..])?;
[INFO] [stdout]     |                                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/u2ftypes.rs:78:39
[INFO] [stdout]    |
[INFO] [stdout] 78 |         data.extend_from_slice(&frame[7..7 + len]);
[INFO] [stdout]    |                                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/u2ftypes.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 |         frame[1..5].copy_from_slice(dev.get_cid());
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/u2ftypes.rs:98:15
[INFO] [stdout]    |
[INFO] [stdout] 98 |         frame[8..8 + count].copy_from_slice(&data[..count]);
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/u2ftypes.rs:139:18
[INFO] [stdout]     |
[INFO] [stdout] 139 |         Ok(frame[5..5 + max].to_vec())
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/u2ftypes.rs:147:15
[INFO] [stdout]     |
[INFO] [stdout] 147 |         frame[1..5].copy_from_slice(dev.get_cid());
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/u2ftypes.rs:151:15
[INFO] [stdout]     |
[INFO] [stdout] 151 |         frame[6..6 + count].copy_from_slice(&data[..count]);
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/u2ftypes.rs:227:15
[INFO] [stdout]     |
[INFO] [stdout] 227 |         bytes[7..7 + data.len()].copy_from_slice(data);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/client_pin.rs:505:87
[INFO] [stdout]     |
[INFO] [stdout] 505 |             let res = <T as ClientPINSubCommand>::parse_response_payload(self, &input[1..])
[INFO] [stdout]     |                                                                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/client_pin.rs:510:53
[INFO] [stdout]     |
[INFO] [stdout] 510 |                 let data: Value = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]     |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ctap2/commands/client_pin.rs:546:35
[INFO] [stdout]     |
[INFO] [stdout] 546 |         out.copy_from_slice(&hmac[0..16]);
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:500:20
[INFO] [stdout]     |
[INFO] [stdout] 500 |             &input[1..]
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:505:39
[INFO] [stdout]     |
[INFO] [stdout] 505 |                     from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]     |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:512:26
[INFO] [stdout]     |
[INFO] [stdout] 512 |                 for _ in 1..number_of_credentials {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:522:53
[INFO] [stdout]     |
[INFO] [stdout] 522 |                 let data: Value = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]     |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/commands/get_info.rs:53:76
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 trace!("parsing authenticator info data: {:#04X?}", &input[1..]);
[INFO] [stdout]    |                                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/commands/get_info.rs:55:39
[INFO] [stdout]    |
[INFO] [stdout] 55 |                     from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]    |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/commands/get_info.rs:58:53
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 let data: Value = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]    |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/commands/get_next_assertion.rs:40:51
[INFO] [stdout]    |
[INFO] [stdout] 40 |                 let assertion = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]    |                                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/commands/get_next_assertion.rs:44:53
[INFO] [stdout]    |
[INFO] [stdout] 44 |                 let data: Value = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]    |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/make_credentials.rs:386:53
[INFO] [stdout]     |
[INFO] [stdout] 386 |                 let attestation = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]     |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/make_credentials.rs:390:53
[INFO] [stdout]     |
[INFO] [stdout] 390 |                 let data: Value = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]     |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/commands/reset.rs:47:53
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 let data: Value = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]    |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/commands/selection.rs:47:53
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 let data: Value = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]    |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/utils.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let rest = &slice[deserializer.byte_offset()..];
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/transport/hid.rs:104:62
[INFO] [stdout]     |
[INFO] [stdout] 104 |             count += U2FHIDCont::write(self, sequence, &send[count..])?;
[INFO] [stdout]     |                                                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/transport/hidproto.rs:64:50
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let item = get_hid_item(&self.desc.value[self.pos..]);
[INFO] [stdout]    |                                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/transport/hidproto.rs:129:44
[INFO] [stdout]     |
[INFO] [stdout] 129 |     Some((buf[2], 3 /* key length */, &buf[3..]))
[INFO] [stdout]     |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/transport/hidproto.rs:148:14
[INFO] [stdout]     |
[INFO] [stdout] 148 |         &buf[1..=len],
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/util.rs:71:6
[INFO] [stdout]    |
[INFO] [stdout] 71 |     (0..s.len())
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/util.rs:73:40
[INFO] [stdout]    |
[INFO] [stdout] 73 |         .map(|i| u8::from_str_radix(&s[i..i + 2], 16).unwrap())
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/u2fprotocol.rs:196:57
[INFO] [stdout]     |
[INFO] [stdout] 196 |         count += U2FHIDCont::write(dev, sequence, &send[count..])?;
[INFO] [stdout]     |                                                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/u2ftypes.rs:78:39
[INFO] [stdout]    |
[INFO] [stdout] 78 |         data.extend_from_slice(&frame[7..7 + len]);
[INFO] [stdout]    |                                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/u2ftypes.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 |         frame[1..5].copy_from_slice(dev.get_cid());
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/u2ftypes.rs:98:15
[INFO] [stdout]    |
[INFO] [stdout] 98 |         frame[8..8 + count].copy_from_slice(&data[..count]);
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/u2ftypes.rs:139:18
[INFO] [stdout]     |
[INFO] [stdout] 139 |         Ok(frame[5..5 + max].to_vec())
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/u2ftypes.rs:147:15
[INFO] [stdout]     |
[INFO] [stdout] 147 |         frame[1..5].copy_from_slice(dev.get_cid());
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/u2ftypes.rs:151:15
[INFO] [stdout]     |
[INFO] [stdout] 151 |         frame[6..6 + count].copy_from_slice(&data[..count]);
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/u2ftypes.rs:227:15
[INFO] [stdout]     |
[INFO] [stdout] 227 |         bytes[7..7 + data.len()].copy_from_slice(data);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/client_pin.rs:505:87
[INFO] [stdout]     |
[INFO] [stdout] 505 |             let res = <T as ClientPINSubCommand>::parse_response_payload(self, &input[1..])
[INFO] [stdout]     |                                                                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/client_pin.rs:510:53
[INFO] [stdout]     |
[INFO] [stdout] 510 |                 let data: Value = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]     |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ctap2/commands/client_pin.rs:546:35
[INFO] [stdout]     |
[INFO] [stdout] 546 |         out.copy_from_slice(&hmac[0..16]);
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:500:20
[INFO] [stdout]     |
[INFO] [stdout] 500 |             &input[1..]
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:505:39
[INFO] [stdout]     |
[INFO] [stdout] 505 |                     from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]     |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:512:26
[INFO] [stdout]     |
[INFO] [stdout] 512 |                 for _ in 1..number_of_credentials {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:522:53
[INFO] [stdout]     |
[INFO] [stdout] 522 |                 let data: Value = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]     |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:753:48
[INFO] [stdout]     |
[INFO] [stdout] 753 |         msg.extend(&assertion.allow_list[0].id[42..]);
[INFO] [stdout]     |                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:771:57
[INFO] [stdout]     |
[INFO] [stdout] 771 |         msg.extend(&GET_ASSERTION_SAMPLE_RESPONSE_CTAP2[57..116]);
[INFO] [stdout]     |                                                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:776:57
[INFO] [stdout]     |
[INFO] [stdout] 776 |         msg.extend(&GET_ASSERTION_SAMPLE_RESPONSE_CTAP2[116..175]);
[INFO] [stdout]     |                                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:781:57
[INFO] [stdout]     |
[INFO] [stdout] 781 |         msg.extend(&GET_ASSERTION_SAMPLE_RESPONSE_CTAP2[175..234]);
[INFO] [stdout]     |                                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:786:57
[INFO] [stdout]     |
[INFO] [stdout] 786 |         msg.extend(&GET_ASSERTION_SAMPLE_RESPONSE_CTAP2[234..293]);
[INFO] [stdout]     |                                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:790:57
[INFO] [stdout]     |
[INFO] [stdout] 790 |         msg.extend(&GET_ASSERTION_SAMPLE_RESPONSE_CTAP2[293..]);
[INFO] [stdout]     |                                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:858:40
[INFO] [stdout]     |
[INFO] [stdout] 858 |         msg.extend(&RELYING_PARTY_HASH[18..]);
[INFO] [stdout]     |                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:865:32
[INFO] [stdout]     |
[INFO] [stdout] 865 |         msg.extend(&KEY_HANDLE[44..]);
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:871:57
[INFO] [stdout]     |
[INFO] [stdout] 871 |         msg.extend(&GET_ASSERTION_SAMPLE_RESPONSE_CTAP1[0..57]);
[INFO] [stdout]     |                                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_assertion.rs:876:57
[INFO] [stdout]     |
[INFO] [stdout] 876 |         msg.extend(&GET_ASSERTION_SAMPLE_RESPONSE_CTAP1[57..]);
[INFO] [stdout]     |                                                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/commands/get_info.rs:53:76
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 trace!("parsing authenticator info data: {:#04X?}", &input[1..]);
[INFO] [stdout]    |                                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/commands/get_info.rs:55:39
[INFO] [stdout]    |
[INFO] [stdout] 55 |                     from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]    |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/commands/get_info.rs:58:53
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 let data: Value = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]    |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_info.rs:626:48
[INFO] [stdout]     |
[INFO] [stdout] 626 |         msg.extend(&AUTHENTICATOR_INFO_PAYLOAD[0..(IN_HID_RPT_SIZE - 8)]);
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/get_info.rs:631:48
[INFO] [stdout]     |
[INFO] [stdout] 631 |         msg.extend(&AUTHENTICATOR_INFO_PAYLOAD[(IN_HID_RPT_SIZE - 8)..]);
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/commands/get_next_assertion.rs:40:51
[INFO] [stdout]    |
[INFO] [stdout] 40 |                 let assertion = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]    |                                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/commands/get_next_assertion.rs:44:53
[INFO] [stdout]    |
[INFO] [stdout] 44 |                 let data: Value = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]    |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/make_credentials.rs:386:53
[INFO] [stdout]     |
[INFO] [stdout] 386 |                 let attestation = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]     |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/commands/make_credentials.rs:390:53
[INFO] [stdout]     |
[INFO] [stdout] 390 |                 let data: Value = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]     |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/commands/reset.rs:47:53
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 let data: Value = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]    |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/commands/selection.rs:47:53
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 let data: Value = from_slice(&input[1..]).map_err(CommandError::Deserializing)?;
[INFO] [stdout]    |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/attestation.rs:776:74
[INFO] [stdout]     |
[INFO] [stdout] 776 |         let cert: AttestationCertificate = from_slice(&SAMPLE_CERT_CHAIN[1..]).unwrap();
[INFO] [stdout]     |                                                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ctap2/attestation.rs:777:48
[INFO] [stdout]     |
[INFO] [stdout] 777 |         assert_eq!(&cert.0, &SAMPLE_CERT_CHAIN[4..]);
[INFO] [stdout]     |                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ctap2/utils.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let rest = &slice[deserializer.byte_offset()..];
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/statecallback.rs:81:18
[INFO] [stdout]    |
[INFO] [stdout] 81 |         for _ in 0..10 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/statecallback.rs:86:18
[INFO] [stdout]    |
[INFO] [stdout] 86 |         for _ in 0..10 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/statecallback.rs:103:18
[INFO] [stdout]     |
[INFO] [stdout] 103 |         for _ in 0..10 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/statecallback.rs:108:18
[INFO] [stdout]     |
[INFO] [stdout] 108 |         for _ in 0..10 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/statecallback.rs:124:18
[INFO] [stdout]     |
[INFO] [stdout] 124 |         for _ in 0..10 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/transport/hid.rs:104:62
[INFO] [stdout]     |
[INFO] [stdout] 104 |             count += U2FHIDCont::write(self, sequence, &send[count..])?;
[INFO] [stdout]     |                                                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/transport/mock/device.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 |         write[1..=packet.len()].clone_from_slice(packet);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::consts::U2F_AUTHENTICATE`
[INFO] [stdout]   --> src/status_update.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |     use crate::consts::U2F_AUTHENTICATE;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/crypto/mod.rs:866:29
[INFO] [stdout]     |
[INFO] [stdout] 866 |         assert_eq!(pin_auth[0..16], expected_pin_auth);
[INFO] [stdout]     |                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/statemachine.rs:844:35
[INFO] [stdout]     |
[INFO] [stdout] 844 |             move |info, selector, status, _alive| {
[INFO] [stdout]     |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/statemachine.rs:845:21
[INFO] [stdout]     |
[INFO] [stdout] 845 |                 let mut dev = match Self::init_and_select(info, &selector, false) {
[INFO] [stdout]     |                     ----^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0170]: pattern binding `Timeout` is named the same as one of the variants of the type `std::sync::mpsc::RecvTimeoutError`
[INFO] [stdout]    --> src/manager.rs:144:25
[INFO] [stdout]     |
[INFO] [stdout] 144 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: to match on the variant, qualify the path: `std::sync::mpsc::RecvTimeoutError::Timeout`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[deny(bindings_with_variant_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/manager.rs:145:21
[INFO] [stdout]     |
[INFO] [stdout] 145 |                     Err(RecvTimeoutError::Disconnected) => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Timeout`
[INFO] [stdout]    --> src/manager.rs:144:25
[INFO] [stdout]     |
[INFO] [stdout] 144 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout`
[INFO] [stdout]    --> src/manager.rs:272:9
[INFO] [stdout]     |
[INFO] [stdout] 272 |         timeout: u64,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/manager.rs:273:9
[INFO] [stdout]     |
[INFO] [stdout] 273 |         status: Sender<crate::StatusUpdate>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `callback`
[INFO] [stdout]    --> src/manager.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |         callback: StateCallback<crate::Result<crate::InfoResult>>,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_callback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0170]: pattern binding `Timeout` is named the same as one of the variants of the type `std::sync::mpsc::RecvTimeoutError`
[INFO] [stdout]    --> src/manager.rs:380:25
[INFO] [stdout]     |
[INFO] [stdout] 380 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: to match on the variant, qualify the path: `std::sync::mpsc::RecvTimeoutError::Timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/manager.rs:381:21
[INFO] [stdout]     |
[INFO] [stdout] 381 |                     Err(RecvTimeoutError::Disconnected) => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Timeout`
[INFO] [stdout]    --> src/manager.rs:380:25
[INFO] [stdout]     |
[INFO] [stdout] 380 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/statemachine.rs:844:35
[INFO] [stdout]     |
[INFO] [stdout] 844 |             move |info, selector, status, _alive| {
[INFO] [stdout]     |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/statemachine.rs:845:21
[INFO] [stdout]     |
[INFO] [stdout] 845 |                 let mut dev = match Self::init_and_select(info, &selector, false) {
[INFO] [stdout]     |                     ----^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0170]: pattern binding `Timeout` is named the same as one of the variants of the type `std::sync::mpsc::RecvTimeoutError`
[INFO] [stdout]    --> src/manager.rs:144:25
[INFO] [stdout]     |
[INFO] [stdout] 144 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: to match on the variant, qualify the path: `std::sync::mpsc::RecvTimeoutError::Timeout`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[deny(bindings_with_variant_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/manager.rs:145:21
[INFO] [stdout]     |
[INFO] [stdout] 145 |                     Err(RecvTimeoutError::Disconnected) => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Timeout`
[INFO] [stdout]    --> src/manager.rs:144:25
[INFO] [stdout]     |
[INFO] [stdout] 144 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout`
[INFO] [stdout]    --> src/manager.rs:272:9
[INFO] [stdout]     |
[INFO] [stdout] 272 |         timeout: u64,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/manager.rs:273:9
[INFO] [stdout]     |
[INFO] [stdout] 273 |         status: Sender<crate::StatusUpdate>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `callback`
[INFO] [stdout]    --> src/manager.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |         callback: StateCallback<crate::Result<crate::InfoResult>>,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_callback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0170]: pattern binding `Timeout` is named the same as one of the variants of the type `std::sync::mpsc::RecvTimeoutError`
[INFO] [stdout]    --> src/manager.rs:380:25
[INFO] [stdout]     |
[INFO] [stdout] 380 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: to match on the variant, qualify the path: `std::sync::mpsc::RecvTimeoutError::Timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/manager.rs:381:21
[INFO] [stdout]     |
[INFO] [stdout] 381 |                     Err(RecvTimeoutError::Disconnected) => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Timeout`
[INFO] [stdout]    --> src/manager.rs:380:25
[INFO] [stdout]     |
[INFO] [stdout] 380 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DeviceSelectorEventMarker` is never used
[INFO] [stdout]   --> src/transport/device_selector.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | trait DeviceSelectorEventMarker {}
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Timeout` should have a snake case name
[INFO] [stdout]    --> src/manager.rs:144:25
[INFO] [stdout]     |
[INFO] [stdout] 144 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: convert the identifier to snake case: `timeout`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Timeout` should have a snake case name
[INFO] [stdout]    --> src/manager.rs:380:25
[INFO] [stdout]     |
[INFO] [stdout] 380 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: convert the identifier to snake case: `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> src/capi.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         Box::from_raw(mgr);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let _ = Box::from_raw(mgr);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> src/capi.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |         Box::from_raw(ids);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let _ = Box::from_raw(ids);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/capi.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |         Box::from_raw(khs);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let _ = Box::from_raw(khs);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/capi.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |         Box::from_raw(res);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let _ = Box::from_raw(res);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> src/ctap2_capi.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         Box::from_raw(mgr);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let _ = Box::from_raw(mgr);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/ctap2_capi.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |         Box::from_raw(khs);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let _ = Box::from_raw(khs);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 47 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0170`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `authenticator-ctap2-2021` (lib) due to 3 previous errors; 47 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: method `is_negative` is never used
[INFO] [stdout]   --> src/util.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub trait Signed {
[INFO] [stdout]    |           ------ method in this trait
[INFO] [stdout] 21 |     fn is_negative(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_unix_result` is never used
[INFO] [stdout]   --> src/util.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn from_unix_result<T: Signed>(rv: T) -> io::Result<T> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DeviceSelectorEventMarker` is never used
[INFO] [stdout]   --> src/transport/device_selector.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | trait DeviceSelectorEventMarker {}
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cancel` is never constructed
[INFO] [stdout]   --> src/transport/device_selector.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum DeviceSelectorEvent {
[INFO] [stdout]    |          ------------------- variant in this enum
[INFO] [stdout] 30 |     Cancel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceSelectorEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `runloop` is never read
[INFO] [stdout]   --> src/transport/device_selector.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct DeviceSelector {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     runloop: RunLoop,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clone_sender` and `stop` are never used
[INFO] [stdout]    --> src/transport/device_selector.rs:184:12
[INFO] [stdout]     |
[INFO] [stdout] 46  | impl DeviceSelector {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn clone_sender(&self) -> Sender<DeviceSelectorEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn stop(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Timeout` should have a snake case name
[INFO] [stdout]    --> src/manager.rs:144:25
[INFO] [stdout]     |
[INFO] [stdout] 144 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: convert the identifier to snake case: `timeout`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Timeout` should have a snake case name
[INFO] [stdout]    --> src/manager.rs:380:25
[INFO] [stdout]     |
[INFO] [stdout] 380 |                     Err(Timeout) => { /* continue */ }
[INFO] [stdout]     |                         ^^^^^^^ help: convert the identifier to snake case: `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> src/capi.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         Box::from_raw(mgr);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let _ = Box::from_raw(mgr);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> src/capi.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |         Box::from_raw(ids);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let _ = Box::from_raw(ids);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/capi.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |         Box::from_raw(khs);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let _ = Box::from_raw(khs);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/capi.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |         Box::from_raw(res);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let _ = Box::from_raw(res);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> src/ctap2_capi.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         Box::from_raw(mgr);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let _ = Box::from_raw(mgr);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/ctap2_capi.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |         Box::from_raw(khs);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let _ = Box::from_raw(khs);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 73 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0170`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `authenticator-ctap2-2021` (lib test) due to 3 previous errors; 73 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "7f528890e38d44d1ccdf2af811ae0bff3db5c8fa9204a130efebc6aa08825ca0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7f528890e38d44d1ccdf2af811ae0bff3db5c8fa9204a130efebc6aa08825ca0", kill_on_drop: false }`
[INFO] [stdout] 7f528890e38d44d1ccdf2af811ae0bff3db5c8fa9204a130efebc6aa08825ca0
